Лабораторная работа №16

Дисциплина: Администрирование сетевых подсистем

Ибрахим Мохсейн Алькамаль

Российский университет дружбы народов

2026-02-13

Цель работы

Цель работы

  • Получение навыков работы с Fail2ban
  • Настройка базовой защиты от атак типа brute force

Выполнение лабораторной работы

Защита с помощью Fail2ban

Установка Fail2ban

  • Установлен пакет fail2ban через dnf
  • Установлены зависимости: fail2ban-firewalld, fail2ban-selinux, fail2ban-sendmail, fail2ban-server
  • Использован репозиторий epel

Рисунок 1: Установка пакета fail2ban и зависимостей через dnf

Запуск и добавление службы в автозагрузку

  • Выполнен systemctl start fail2ban
  • Выполнен systemctl enable fail2ban
  • Создана ссылка в multi-user.target.wants

Рисунок 2: Запуск службы fail2ban и включение автозагрузки

Контроль журнала событий Fail2ban

  • Выполнен tail -f /var/log/fail2ban.log
  • Зафиксирован запуск Fail2ban 1.1.0
  • Инициализирован observer
  • Создана база fail2ban.sqlite3

Рисунок 3: Просмотр журнала fail2ban.log в реальном времени

Создание файла локальной конфигурации

  • Создан файл /etc/fail2ban/jail.d/customisation.local
  • Выполнено редактирование в nano

Рисунок 4: Создание и перезапуск службы после настройки

Настройка параметров блокирования и защиты SSH

  • В [DEFAULT] установлен bantime = 3600
  • Активированы [sshd], [sshd-ddos], [selinux-ssh]
  • Указан порт ssh,2022
  • Для всех секций enabled = true

Рисунок 5: Конфигурация customisation.local с параметрами bantime и SSH

Перезапуск службы Fail2ban

  • Выполнен systemctl restart fail2ban
  • Применена новая конфигурация

Рисунок 6: Создание и перезапуск службы после настройки

Просмотр журнала после настройки SSH

  • Инициализирован backend pyinotify
  • Установлены параметры maxRetry, findtime, banTime = 3600
  • Запущены jail-модули sshd, selinux-ssh, sshd-ddos

Рисунок 7: Журнал запуска jail-модулей SSH в fail2ban

Включение защиты HTTP

  • Активированы jail-модули: apache-auth, apache-badbots, apache-noscript, apache-overflows, apache-nohome, apache-botsearch, apache-fakegooglebot, apache-modsecurity, apache-shellshock
  • Для всех enabled = true

Рисунок 8: Конфигурация HTTP jail-модулей в customisation.local

Перезапуск после настройки HTTP

  • Выполнен systemctl restart fail2ban
  • Загружены HTTP jail-модули

Рисунок 9: Журнал запуска HTTP jail-модулей

Контроль журнала HTTP-защиты

  • В журнале зафиксирован запуск всех apache-* jail
  • Подтверждена активация sshd-ddos

Рисунок 10: Подтверждение запуска HTTP jail-модулей в журнале

Включение защиты почтовых сервисов

  • Активированы jail-модули: postfix, postfix-rbl, dovecot, postfix-sasl
  • Установлено enabled = true

Рисунок 11: Конфигурация jail-модулей для почтовых сервисов

Перезапуск после настройки почтовых служб

  • Выполнен перезапуск fail2ban
  • Загружены почтовые jail-модули

Рисунок 12: Журнал запуска jail-модулей почтовых сервисов

Контроль журнала почтовой защиты

  • Зафиксировано Jail is in operation now
  • Подтверждена активация postfix, dovecot, postfix-sasl

Рисунок 13: Подтверждение работы jail-модулей почтовых сервисов

Проверка работы Fail2ban

Просмотр общего статуса

  • Выполнен fail2ban-client status
  • Активировано 16 jail-модулей
  • Отображены apache-*, sshd, dovecot, postfix

Рисунок 14: Общий статус fail2ban-client

Просмотр статуса SSH

  • Выполнен fail2ban-client status sshd
  • Currently banned: 0
  • Total banned: 0

Рисунок 15: Статус jail-модуля sshd до проверки

Установка maxretry

  • Выполнено fail2ban-client set sshd maxretry 2
  • После 2 ошибок IP должен блокироваться

Рисунок 16: Установка параметра maxretry для sshd

Попытка входа с неверным паролем

  • С клиента выполнены неудачные попытки SSH-входа
  • Зафиксированы ошибки Permission denied

Рисунок 17: Попытки входа по SSH с неверным паролем

Проверка блокировки IP

  • Выполнен fail2ban-client status sshd
  • Currently banned: 1
  • IP 192.168.1.30 в списке блокировки

Рисунок 18: Блокировка IP-адреса клиента в sshd

Разблокировка IP

  • Выполнено fail2ban-client set sshd unbanip 192.168.1.30

Рисунок 19: Команда разблокировки IP-адреса клиента

Проверка снятия блокировки

  • Повторный status sshd
  • Currently banned: 0
  • Список пуст

Рисунок 20: Статус sshd после снятия блокировки

Добавление ignoreip

  • В [DEFAULT] добавлен ignoreip = 127.0.0.1/8 192.168.1.30
  • IP клиента исключён из блокировки

Рисунок 21: Добавление параметра ignoreip в customisation.local

Перезапуск службы

  • Выполнен systemctl restart fail2ban
  • Применена новая конфигурация

Рисунок 22: Попытка входа с клиента после изменения конфигурации

Просмотр журнала ignoreip

  • В журнале отображено Ignore 192.168.1.30 by ip
  • IP корректно исключён

Рисунок 23: Сообщения журнала о игнорировании IP-адреса

Повторная проверка SSH

  • Повторные ошибки входа не приводят к блокировке
  • Currently banned: 0
  • Список IP пуст

Рисунок 24: Статус sshd после включения ignoreip

Внесение изменений в настройки внутреннего

Подготовка конфигурации

  • Создан каталог protect/etc/fail2ban/jail.d
  • Скопирован customisation.local

Рисунок 25: Создание каталога protect и копирование customisation.local

Создание скрипта protect.sh

  • Установка fail2ban
  • Копирование конфигурации в /etc
  • Выполнен restorecon -vR /etc
  • Включена и запущена служба

Рисунок 26: Содержимое скрипта protect.sh

Добавление provisioning в Vagrantfile

  • Добавлен блок server.vm.provision
  • Указан путь provision/server/protect.sh
  • Использован preserve_order: true

Рисунок 27: Добавление блока provision в Vagrantfile

Выводы

Выводы

  • Установлен и настроен Fail2ban
  • Реализована защита SSH, HTTP и почтовых сервисов
  • Проверена блокировка IP при превышении maxretry
  • Выполнена ручная разблокировка
  • Настроен параметр ignoreip
  • Подтверждена корректная работа jail-модулей
  • Настройка автоматизирована через provisioning
  • Обеспечена воспроизводимая базовая защита от brute force